{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from itertools import cycle\n",
    "\n",
    "from sklearn import svm, datasets\n",
    "from sklearn.metrics import roc_curve, auc\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.preprocessing import label_binarize\n",
    "from sklearn.multiclass import OneVsRestClassifier\n",
    "from scipy import interp\n",
    "\n",
    "# Import some data to play with\n",
    "iris = datasets.load_iris()\n",
    "X = iris.data\n",
    "y = iris.target\n",
    "\n",
    "# Binarize the output\n",
    "y = label_binarize(y, classes=[0, 1, 2])\n",
    "n_classes = y.shape[1]\n",
    "\n",
    "# Add noisy features to make the problem harder\n",
    "random_state = np.random.RandomState(0)\n",
    "n_samples, n_features = X.shape\n",
    "X = np.c_[X, random_state.randn(n_samples, 40 * n_features)]\n",
    "\n",
    "# shuffle and split training and test sets\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5,\n",
    "                                                    random_state=0)\n",
    "\n",
    "# Learn to predict each class against the other\n",
    "classifier = OneVsRestClassifier(svm.SVC(kernel='linear', probability=True,\n",
    "                                 random_state=random_state))\n",
    "y_score = classifier.fit(X_train, y_train).decision_function(X_test)\n",
    "\n",
    "# Compute ROC curve and ROC area for each class\n",
    "fpr = dict()\n",
    "tpr = dict()\n",
    "roc_auc = dict()\n",
    "for i in range(n_classes):\n",
    "    fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_score[:, i])\n",
    "    roc_auc[i] = auc(fpr[i], tpr[i])\n",
    "\n",
    "# Compute micro-average ROC curve and ROC area\n",
    "fpr[\"micro\"], tpr[\"micro\"], _ = roc_curve(y_test.ravel(), y_score.ravel())\n",
    "roc_auc[\"micro\"] = auc(fpr[\"micro\"], tpr[\"micro\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nD/R/qq8O1zWzd7oAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f90b94176a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "lor =  y_score[:,2].cumsum() / y_score[:,2].sum()\n",
    "lor = np.insert(lor,0,0)\n",
    "\n",
    "plt.clf()\n",
    "plt.plot(np.arange(lor.size)/(lor.size-1), lor, color='darkgreen')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nYwnBZKng4GCuvfZa6tSpQ6dOnTh+/Lhn2datW2nZsiXVq1enWrVqvPLKK57xugEWLlxIVFQUtWrV\nokGDBgwfPjwQp5CuDRs2cP/99wc6jHS9/vrrVK1alerVq7No0aI01/nmm2+47rrruPbaa7nxxhvZ\nuXMnAL///jutWrWiXr16tGjRguho5zmlmJgY2rVr55+AVTVX/TVs2FAvyWicPz9xnlBIf51z5xI1\nPj7RM/3ZZ1t00qQ1mpSU7Le4TOBs27Yt0CFowYIFPa/vueceHTVqlKqqnjlzRqtUqaKLFi1SVdXT\np09ru3btdMKECaqq+vPPP2uVKlV0+/btqqqamJio7733XpbGlpCQcNn7uPPOO3Xjxo3ZeszM2Lp1\nq9arV0/j4uJ09+7dWqVKFU1MTLxgvWrVqnmul4kTJ+q9996rqs75TZ8+XVVVv/nmG+3du7dnm759\n++rKlSvTPG5a1x5On3MZfsda9VE2+eGH/fTvP59u3Wrx3HPOsBHdutUOcFQm27zjp7aF4b4/Ldmk\nSRM2b94MwL///W+aNWtGmzZtAChQoAATJkygRYsWPPzww7z11ls8++yz1KhRA3BKHAMHDrxgn7Gx\nsTzyyCOsXbsWEeGFF16ga9euFCpUiNjYWABmzZrF/PnzmT59On379iUiIoINGzbQrFkzZs+ezcaN\nGylWrBgA1apVY+XKlQQFBTFgwAD27dsHwLhx42jWrNl5xz516hSbN2+mfn1nIKnVq1czdOhQ4uLi\niIyM5KOPPqJ69epMnz6d2bNnExsbS1JSEt999x1vv/02n3/+OfHx8dxxxx289NJLANx+++3s37+f\nuLg4hg4dykMPPeTz+5uWuXPn0qNHD8LDw6lcuTJVq1Zl9erVNGnS5Lz1RISTJ08CcOLECa666ioA\ntm3bxpgxYwC45ZZbuP322z3b3H777Xz66acXvC+Xy5KCn/3551meemopU6euB5yS2dNP32S3mJps\nlZSUxDfffOOpatm6dSsNGzY8b52rr76a2NhYTp48yZYtW3yqLnrllVcoWrQoP//8MwB//fVXhttE\nR0fzww8/EBwcTFJSEnPmzOG+++7jp59+omLFilxxxRX07NmTxx57jBtvvJF9+/bRtm1btm/fft5+\n1q5dS506dTzTNWrU4L///S8hISEsXbqUZ555hi+++AKA9evXs3nzZkqUKMHixYvZsWMHq1evRlXp\n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\nPHXcp08f3nvvvew7GT/IP0nBB8HBwsKFzmPzjz7amO3bH+aOO2ranUXmsqX1FHxW/KXn22+/JSws\njAEDBnjmVaxYkUceeSTN9Tt27MjWrVv59ddffT6vTz/9lC5dugDw1FNPndflxYsvvsjo0aOJjY2l\nVatWXHfdddStW5e5c+desB/vUgvg6QQOYN26ddx88800bNiQtm3bcujQIZ/jS8vq1aupWrUqVapU\nISwsjB49eqQZU3rdWbds2RJwOqUrVqwYKQ/Udu7cmRkzZlxWfIGW75PCvn0nOHbsDADh4SH885+3\ns2bNg4wd247ChfPfQzEm79i6dSvXXXedz+sHBQXxxBNP8Nprr/m8zffff+/pgrt79+58/vnnnmWf\nf/453bt3JyIigjlz5rB+/XqWLVvG8OHD8bUnhYSEBB555BFmzZrFunXr6Nev33ldPaT49NNPufba\nay/4u/POOy9Y98CBA5QvX94zfbHurF988UU++eQTypUrR/v27T19MdWvX5958+aRmJjInj17WLdu\nnafTu+LFixMfH8+xY8d8Or+cKN82NCcmJvPuu6t44YXldOtWm2nTnF87119fNoMtjcm8nNCbzMMP\nP8zKlSsJCwtjzZo1aa7Ts2dPXn31Vfbs2ePTPv/8808KFy4MOH0rHTlyhIMHDxITE0Px4sUpX748\nCQkJPPPMM6xYsYKgoCAOHDjA4cOH+dvf/pbh/n/99Ve2bNni6fI7KSkpzb6UevXqRa9evXyK2Vcz\nZsygb9++DB8+nB9//JE+ffqwZcsW+vXrx/bt24mKiqJixYo0bdrU058R/K9L69RdbucWfk0KItIO\neBcIBj5Q1TdSLQ8H/gU0xOlNrruq7vVnTAA//RRN//7z2bTpMACnTyeQmJhsDckmT6ldu7ZnkBmA\niRMncvToUaKiLt79TUhICMOHD+fNN9/06RghISEkJycTFOR8du666y5mzZrFH3/84eng7tNPPyUm\nJoZ169YRGhpKpUqVLuiSOmU/KVKWqyq1a9fmxx9/TDeOTz/91NOJnLeqVasya9as8+b50p01wIcf\nfsjXX38NOF18x8XFcfToUcqUKXPemApNmzblmmuuOS92f3RpnV389i0oIsHAROA2oBZwt4jUSrXa\n/cBfqloVGAv4diVeouPH4xg06CuaNPmQTZsOU6lSMb76qieffXanJQST57Rs2ZK4uDgmTZrkmXfm\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f90bb61d978>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "lw = 2\n",
    "plt.plot(fpr[2], tpr[2], color='darkorange',\n",
    "         lw=lw, label='ROC curve (area = %0.2f)' % roc_auc[2])\n",
    "\n",
    "X_lorenz = \n",
    "\n",
    "plt.plot(fpr[2], (2*tpr[2]) -1 , color='blue',\n",
    "         lw=lw, label='GINI (value = %0.2f)' % roc_auc[2])\n",
    "\n",
    "plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')\n",
    "plt.xlim([-0.05, 1.05])\n",
    "plt.ylim([-0.05, 1.1])\n",
    "plt.xlabel('False Positive Rate')\n",
    "plt.ylabel('True Positive Rate')\n",
    "plt.title('Receiver operating characteristic example')\n",
    "plt.legend(loc=\"lower right\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.5895\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nKXchhHBC/x/iKDl+wY6hzgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f90b8bb8828>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "from numpy import trapz\n",
    "\n",
    "GDP = (653200000000)\n",
    "A = (0.49 * GDP) / 100 # Poorest 10%\n",
    "B = (0.59 * GDP) / 100\n",
    "C = (0.69 * GDP) / 100\n",
    "D = (0.79 * GDP) / 100\n",
    "E = (1.89 * GDP) / 100\n",
    "F = (2.55 * GDP) / 100\n",
    "G = (5.0 * GDP) / 100\n",
    "H = (10.0 * GDP) / 100\n",
    "I = (18.0 * GDP) / 100\n",
    "J = (60.0 * GDP) / 100 # Richest 10%\n",
    "\n",
    "# Divide into quintiles and total income within each quintile\n",
    "Q1 = float(A + B) # lowest quintile\n",
    "Q2 = float(C + D) # second quintile\n",
    "Q3 = float(E + F) # third quintile\n",
    "Q4 = float(G + H) # fourth quintile\n",
    "Q5 = float(I + J) # fifth quintile\n",
    "\n",
    "# Calculate the percent of total income in each quintile\n",
    "T1 = float((100 * Q1) / GDP) / 100\n",
    "T2 = float((100 * Q2) / GDP) / 100\n",
    "T3 = float((100 * Q3) / GDP) / 100\n",
    "T4 = float((100 * Q4) / GDP) / 100\n",
    "T5 = float((100 * Q5) / GDP) / 100\n",
    "\n",
    "TR = float(T1 + T2 + T3 + T4 + T5)\n",
    "\n",
    "# Calculate the cumulative percentage of household income\n",
    "H1 = float(T1)\n",
    "H2 = float(T1+T2)\n",
    "H3 = float(T1+T2+T3)\n",
    "H4 = float(T1+T2+T3+T4)\n",
    "H5 = float(T1+T2+T3+T4+T5)\n",
    "\n",
    "# The y values. Cumulative percentage of incomes\n",
    "y = np.array([H1,H2,H3,H4,H5])\n",
    "\n",
    "# The perfect equality y values. Cumulative percentage of incomes.\n",
    "y_pe = np.linspace(0.0,1.0,len(y))\n",
    "\n",
    "# Compute the area using the composite trapezoidal rule.\n",
    "area_lorenz = np.trapz(y, dx=5)\n",
    "\n",
    "# Calculate the area below the perfect equality line.\n",
    "area_perfect = np.trapz(y_pe, dx=5)\n",
    "\n",
    "# Seems to work fine until here. \n",
    "# Manually calculated Gini using the values given for the areas above \n",
    "# turns out at .58 which seems reasonable?\n",
    "\n",
    "Gini = (area_perfect - area_lorenz)/area_perfect\n",
    "\n",
    "print(Gini)\n",
    "\n",
    "plt.plot(y,label='lorenz')\n",
    "plt.plot(y_pe,label='perfect_equality')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Global TF Kernel (Python 3)",
   "language": "python",
   "name": "global-tf-python-3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
